package cn.tedu.ba01;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

import java.util.Date;


@Aspect
public class MyAspect2 {

    /*指定通知方法中的参数：JoinPoint
    JoinPoint:业务方法，就是指定这里doSome这个方法
    作用：获取方法执行时的信息，例如方法的名称，实参
    位置：必须时第一个参数
    * */
    @Before(value = "execution(* *..SomeServiceImpl.doSome(String,Integer))")
    public void myBefore2(JoinPoint jp) {
        System.out.println("方法的签名（定义）："+jp.getSignature());
        System.out.println("方法的名称："+jp.getSignature().getName());
        Object[] args = jp.getArgs();
        for (Object arg : args) {
            System.out.println("方法的参数："+arg);
        }
        System.out.println("前置通知，切面功能：在目标方法执行之前输出时间：" + new Date());
    }
}
